import { defineStore } from 'pinia'
import { ref } from 'vue'
//结构 export const userStore =defineStore('user', () => {...}, {...})
// 'user'：是存储的唯一标识符，用于在整个应用程序中识别这个存储。
// 第一个函数参数:使用 ref 创建了一个名为 userinfo 的响应式数据初始值为 undefined，用于存储用户信息,定义了两个函数传参;return作为存储的公共属性和方法返回，这样在使用该存储的组件中可以访问和调用它们。
// 第二个对象参数:配置存储的持久化选项
export const userStore = defineStore(
  'user',
  () => {
    // 用户信息
    const userinfo = ref()
    const userId = ref()
    // 保存用户信息，登录时使用
    const setUserInfo = (val) => {
      userinfo.value = val
    }
    // 保存用户id
    const setUserId = (val) => {
      userId.value = val
    }

    // 清理用户信息，退出时使用
    const clearUserInfo = () => {
      userinfo.value = undefined
    }

    // 记得 return
    return {
      userinfo,
      setUserInfo,
      clearUserInfo,
	  setUserId
    }
  },
  {
      // 网页端配置:使用默认的持久化方式（可能是 localStorage 或 sessionStorage）。
      // persist: true,
      // 小程序端配置
      persist: {
        storage: {
          getItem(key) {
            return uni.getStorageSync(key)
          },
          setItem(key, value) {
            uni.setStorageSync(key, value)
          },
        },
      },
    },
  )